import serial
import time


def setup_slave_mode(serial_port, slave_address):
    """
    该函数用于通过串口设置从模式，根据给定的提示信息进行相应的配置操作
    :param serial_port: 串口名称，例如 '/dev/ttyUSB0' 或 'COM1'
    :param slave_address: 从模块地址，范围为 1 到 255
    """
    ser = serial.Serial(serial_port, baudrate=115200, timeout=1)
    try:
        # 发送 SETUP 命令
        time.sleep(1)
        ser.write(b"SETUP\r\n")
        time.sleep(1)  # 等待设备响应

        ser.write(b"\r\n")  # 发送回车换行符
        time.sleep(2)  # 等待设备响应

        # 接收并处理模块工作模式选择提示

        ser.write(b"2\n")
        write_str = f"{slave_address}\n".encode('gbk')
        ser.write(b"2")

        # 接收设置成功的确认信息
        response = ser.readline().decode('gbk').strip()
        if "设置成功！" in response:
            print("从模块设置完成。")
        else:
            print("设置未成功，可能出现异常。")
    except Exception as e:
        print(f"发生异常: {e}")
    finally:
        ser.close()


# 示例使用
if __name__ == "__main__":
    setup_slave_mode('COM4', 1)  # 替换为实际的串口名称和从模块地址